package com.qny.ai.service;

import org.springframework.web.socket.WebSocketSession;

import java.util.concurrent.CompletableFuture;

public interface StreamingTTSService {
    
    /**
     * 流式处理TTS请求
     * @param text 要合成的文本
     * @param voiceType 语音类型
     * @param encoding 编码格式
     * @param session WebSocket会话，用于发送流式响应
     * @param sessionId 会话ID
     * @param messageId 消息ID（可选，用于手动TTS请求）
     */
    CompletableFuture<Void> processStreamingTTS(String text, String voiceType, String encoding, 
                                               WebSocketSession session, String sessionId, String messageId);
    
    /**
     * 处理文本块
     * @param textChunk 文本块
     * @param sessionId 会话ID
     * @param isFinal 是否为最终块
     */
    void processTextChunk(String textChunk, String sessionId, boolean isFinal);
    
    /**
     * 清理会话数据
     * @param sessionId 会话ID
     */
    void cleanupSession(String sessionId);
}
